import { Action } from 'redux'
import { SCENARIO_ENUM, TRIGGER_EVENT_ENUM } from '@CONSTANTS/smartAssistant'
import { ChoiceITF, EvaluationITF, EvaluationStartITF, QuestionITF } from '@INTERFACES/Survey'
import { AssistantMsgITF } from '@INTERFACES/SmartAssistant'

export interface BotInputParamsITF {
  addSendMsg: boolean;
  addReturnMsg: boolean;
  Text?: string;
  payload: {
    Text?: string;
    JourneyId: string;
    EntityId?: string;
    TriggerEvent: TRIGGER_EVENT_ENUM
  }
}

export interface SmartAssistantStartJourneyActionITF extends Action {
  scenario: SCENARIO_ENUM
}

export interface SmartAssistantBotInputActionITF extends Action {
  data: BotInputParamsITF
}

export interface SmartAssistantStartEvaluationActionITF extends Action {
  data: EvaluationITF;
  isTestBtn: boolean;
}

export interface SmartAssistantQuestionActionITF extends Action {
  message: AssistantMsgITF;
  choice: ChoiceITF;
}

export interface SmartAssistantStateITF {
  messages: AssistantMsgITF[];
  currentEvaluation: EvaluationStartITF | null;
  questions: QuestionITF[];
  assistantDetail: AssistantMsgITF | null;
}
